﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HotelSoft.HotelManagement_BUS;
using HotelSoft.HotelManagement_DTO;
using System.Collections;
using System.Globalization;
using System.Threading;

namespace HotelSoft.HotelManagement_GUI
{
    public partial class frmQuanly_PHIEUDANGKY : Form
    {
        ArrayList dsPhieuDangKy;//danh sach phieu dang ky dang co cua khach san
        PhieuDangKyBUS busPhieuDangKy = new PhieuDangKyBUS();//Đối tượng chứa các hàm xử lý nghiệp vụ liên quan tới Nhan vien
        PhieuDangKyDTO dtoPhieuDangKy = new PhieuDangKyDTO();
        PhongBUS busPhong = new PhongBUS();
        BindingSource bsData = null;
        private static string sophong;
        private static DateTime ngaythue;
        private static int songaythue;

        public int Songaythue
        {
            get { return songaythue; }
            set { songaythue = value; }
        }

        public DateTime Ngaythue
        {
            get { return ngaythue; }
            set { ngaythue = value; }
        }
        

        public string Sophong
        {
            get { return sophong; }
            set { sophong = value; }
        }
        

        public frmQuanly_PHIEUDANGKY()
        {
            InitializeComponent();
        }

        private void frmQuanly_PHIEUDANGKY_Load(object sender, EventArgs e)
        {
            CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
            culture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";
            Thread.CurrentThread.CurrentCulture = culture;
            LoadCombobox();
            LayDanhSachPhieuDangKy();
            dtoPhieuDangKy.Ngayden= Convert.ToDateTime("10/05/2011");
            dtbNgayden.Text = dtoPhieuDangKy.Ngayden.ToString();
            //cbbSoPhong.Text = Sophong.ToString();
            //txtSongaythue.Text = Songaythue.ToString();
            //dtbNgayden.Text = Ngaythue.ToString();
            //txtChuThich.Text = "Chưa thanh toán";
            //txtTraTruoc.Text = (0).ToString();
            //LaydulieuSoPDK();
            txtSophieudangky.ReadOnly = true;
            txtChuThich.ReadOnly = true;
        }
        public void LoadCombobox()
        {
            DataTable tbl = new DataTable();
            tbl = busPhong.SelectAll();
            cbbSoPhong.DisplayMember = "SoPhong";
            cbbSoPhong.ValueMember = "SoPhong";
            cbbSoPhong.DataSource = tbl;
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            PhieuDangKyDTO dtoPhieuDangKys = new PhieuDangKyDTO();
            Luu_PhieuDangKyDTO dtoLuu_PhieuDangKy = new Luu_PhieuDangKyDTO();
            dtoPhieuDangKys.SoPDK = txtSophieudangky.Text;
            dtoLuu_PhieuDangKy.ISoPDK = txtSophieudangky.Text;
            dtoPhieuDangKys.SoNguoi = int.Parse(txtSonguoi.Text);
            dtoPhieuDangKys.Ngayden = dtbNgayden.Value;
            dtoPhieuDangKys.SoNgayThue = int.Parse(txtSongaythue.Text.ToString());
            dtoPhieuDangKys.TraTruoc = float.Parse(txtTraTruoc.Text.ToString());
            dtoPhieuDangKys.ChuThich = txtChuThich.Text;
            dtoPhieuDangKys.SoPhong = cbbSoPhong.Text.ToString();
            busPhieuDangKy.Them(dtoPhieuDangKys);
            LayDanhSachPhieuDangKy();
            if (busPhieuDangKy.UpdateluuSoPDK(dtoLuu_PhieuDangKy))
            {
                MessageBox.Show("Cập nhật thành công", "Thông báo: Lưu phiếu đăng ký");
                frmDat_PHONG frm = new frmDat_PHONG();
                frm.CHECKCREATE_PDK = true;
            }
            else
            {
                MessageBox.Show("Hãy kiểm tra lại thông tin nhập", "Thông báo: Lưu phiếu đăng ký");
            }
            //PhieuDangKyDTO dto = new PhieuDangKyDTO();
            //dto.SoPDK = txtSophieudangky.Text.ToString();
            //busPhieuDangKy.UpdatephieudangkytheoSoPDK(dto);




            //busHoaDon_ThanhToan.Them(dtoHoaDon_ThanhToan);//luu hoa don thanh toan vao bang du lieu
            //LayDanhSachHoaDon_ThanhToan();//hien thi danh sach hoa don thanh toan

            //PhieuDangKyDTO dto = new PhieuDangKyDTO();
            //dto.SoPDK = txtSoPDK.Text.ToString();
            //busPhieuDangKy.UpdatephieudangkytheoSoPDK(dto);
        }

        public void LaydulieuSoPDK()
        {
            int flagPDK;
            flagPDK = int.Parse(busPhieuDangKy.LaydulieuSoPDK().ToString());
           // MessageBox.Show(flagPDK.ToString(), "Thong Bao");
            if (flagPDK < 10 && flagPDK > 0)
            {
                txtSophieudangky.Text = "" + (0).ToString() + "" + (0).ToString() + "" + (0).ToString() + "" + flagPDK.ToString() + "";
            }
            if (flagPDK < 100 && flagPDK >= 10)
            {
                txtSophieudangky.Text = "" + (0).ToString() + "" + (0).ToString() + "" + flagPDK.ToString() + "";
            }
            if (flagPDK < 1000 && flagPDK >= 100)
            {
                txtSophieudangky.Text = "" + (0).ToString() + "" + flagPDK.ToString() + "";
            }
            if (flagPDK >= 1000)
            {
                txtSophieudangky.Text = "" + flagPDK.ToString() + "";
            }
        }

        private void LayDanhSachPhieuDangKy()
        {
            dsPhieuDangKy = busPhieuDangKy.LayDanhSachPhieuDangKy();
            XuatDanhSachPhieuDangKy(dsPhieuDangKy);
            dtgBangPhieuDangKy.CellContentClick += new DataGridViewCellEventHandler(Grid_PhieuDangKy_CellContentClick);
        }

        private void XuatDanhSachPhieuDangKy(ArrayList ds)
        {
            dtgBangPhieuDangKy.AutoGenerateColumns = false;

            this.bsData = new BindingSource(ds, "");
            dtgBangPhieuDangKy.DataSource = bsData;
        }
       
        private void Grid_PhieuDangKy_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void dtgBangPhieuDangKy_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dtgBangPhieuDangKy.SelectedCells.Count > 0)
            {
                int row = dtgBangPhieuDangKy.SelectedCells[0].RowIndex;
                txtSophieudangky.Text = dtgBangPhieuDangKy.Rows[row].Cells[1].Value.ToString();
                txtSonguoi.Text = dtgBangPhieuDangKy.Rows[row].Cells[2].Value.ToString();
                dtbNgayden.Text = dtgBangPhieuDangKy.Rows[row].Cells[3].Value.ToString();
                txtSongaythue.Text = dtgBangPhieuDangKy.Rows[row].Cells[4].Value.ToString();
                txtTraTruoc.Text = dtgBangPhieuDangKy.Rows[row].Cells[5].Value.ToString();
                txtChuThich.Text = dtgBangPhieuDangKy.Rows[row].Cells[6].Value.ToString();
                cbbSoPhong.Text = dtgBangPhieuDangKy.Rows[row].Cells[7].Value.ToString();
            }
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            XoaPhieuDangKy();
            LayDanhSachPhieuDangKy();
        }
        private void XoaPhieuDangKy()
        {
            ArrayList dsPhieuDangKy;
            LayPhieuDangKyDuocChon(out dsPhieuDangKy);
            if (dsPhieuDangKy.Count > 0)
            {
                PhieuDangKyBUS busPhieuDangKy = new PhieuDangKyBUS();
                busPhieuDangKy.Xoa(dsPhieuDangKy);
                XoaPhieuDangKyDuocChonKhoiDanhSach();
            }
            else
            {
                MessageBox.Show("Bạn phải chọn một hóa đơn thanh toán!");
                return;
            }
        }
        private void XoaPhieuDangKyDuocChonKhoiDanhSach()
        {
            for (int i = 0; i < dtgBangPhieuDangKy.Rows.Count; i++)
            {
                DataGridViewRow dong = dtgBangPhieuDangKy.Rows[i];
                DataGridViewCheckBoxCell cell = (DataGridViewCheckBoxCell)dong.Cells[0];
                PhieuDangKyDTO dtoPhieuDangKyBiXoa = (PhieuDangKyDTO)dtgBangPhieuDangKy.Rows[cell.RowIndex].DataBoundItem;

                bool bChecked = (null != cell && null != cell.Value && true == (bool)cell.Value);
                if (bChecked)
                {
                    this.bsData.RemoveAt(cell.RowIndex);
                    i--;
                }
            }
        }
        private int LayPhieuDangKyDuocChon(out ArrayList dsPhieuDangKy)
        {
            int iIndex = 0;
            dsPhieuDangKy = new ArrayList();
            foreach (DataGridViewRow dong in this.dtgBangPhieuDangKy.Rows)
            {
                DataGridViewCheckBoxCell cell = (DataGridViewCheckBoxCell)dong.Cells[0];
                bool bChecked = (null != cell && null != cell.Value && true == (bool)cell.Value);
                if (bChecked)
                {
                    dsPhieuDangKy.Add(dong.DataBoundItem);
                    iIndex = dong.Index;
                }
            }

            return iIndex;
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            PhieuDangKyDTO dto = new PhieuDangKyDTO();
            dto.SoPDK = txtSophieudangky.Text.ToString();
            dto.SoNguoi = int.Parse(txtSonguoi.Text.ToString());
            dto.TraTruoc = float.Parse(txtTraTruoc.Text.ToString());
            dto.Ngayden = dtbNgayden.Value;
            dto.SoNgayThue = int.Parse(txtSongaythue.Text.ToString());
            busPhieuDangKy.CapNhatThongTindondulieu(dto);
            LayDanhSachPhieuDangKy();

            //dto.SoNgayThue = int.Parse(txtSongaythue.Text.ToString());
            //dto.TraTruoc= float.Parse(txtTraTruoc.Text.ToString());
            //dto.SoPDK = txtSophieudangky.Text.ToString();
            //dto.SoPDK = txtSoPDK.Text.ToString();
            //DateTime dt = DateTime.Parse(dtbNgayThanhToan.Value.ToShortDateString());
            //dt.ToString("MM/dd/yyyy");
            //dto.NgayThanhToan = dt;
            //dto.MasoNV = cbbMasoNV.Text.ToString();
            //busHoaDon_ThanhToan.CapNhatThongTindondulieu(dto);//cap nhap hoa don thanh toan vao bang du lieu
            //LayDanhSachHoaDon_ThanhToan();
        }

        
      

        
    }
}
